#!/bin/bash AdobeRemoved=false TARGET_EDITION="300" LOG_FILE=$(mktemp /tmp/adobe_remove.XXXXXX) || exit 1 umask 077 APPS=$(/usr/bin/find /Applications \ -xdev \ -type d \ \( -iname "*adobe*.app" -o -iname "*acrobat*.app" -o -iname "*reader*.app" \) \ 2>/dev/null) if [ -z "$APPS" ]; then echo "AdobeRemoved:false" exit 0 fi while IFS= read -r app; do [ -z "$app" ] && continue [ ! -d "$app" ] && continue [ -L "$app" ] && continue real_app=$(/usr/bin/realpath "$app" 2>/dev/null) || continue [[ "$real_app" != /Applications/* ]] && continue [[ "$real_app" == "/" ]] && continue [ ! -d "$real_app" ] && continue [ -L "$real_app" ] && continue owner=$(/usr/bin/stat -f %Su "$real_app" 2>/dev/null) [ "$owner" != "root" ] && continue plist="$real_app/Contents/Info.plist" [ ! -f "$plist" ] && continue bundle_id=$(/usr/libexec/PlistBuddy \ -c "Print CFBundleIdentifier" \ "$plist" 2>/dev/null) [ -z "$bundle_id" ] && continue lower=$(/bin/echo "$bundle_id" | /usr/bin/tr '[:upper:]' '[:lower:]') if [[ "$lower" != com.adobe.* && "$lower" != *acrobat* ]]; then continue fi edition=$(/usr/libexec/PlistBuddy \ -c "Print Edition" \ "$plist" 2>/dev/null) [ "$edition" != "$TARGET_EDITION" ] && continue /usr/bin/codesign --verify --deep --strict \ "$real_app" >/dev/null 2>&1 || continue current_real=$(/usr/bin/realpath "$real_app" 2>/dev/null) || continue [ "$current_real" != "$real_app" ] && continue [[ "$current_real" != /Applications/* ]] && continue [[ "$current_real" == "/" ]] && continue quarantine=$(/usr/bin/mktemp -d /private/tmp/adobe_remove.XXXXXX) /bin/mv -- "$real_app" "$quarantine/" 2>>"$LOG_FILE" || { /bin/rmdir "$quarantine" 2>/dev/null continue } moved_app="$quarantine/$(/usr/bin/basename "$real_app")" [ -d "$moved_app" ] || { /bin/rm -rf -- "$quarantine" 2>/dev/null continue } /bin/rm -rf -- "$quarantine" 2>>"$LOG_FILE" if [ ! -d "$real_app" ]; then AdobeRemoved=true fi done <<< "$APPS" echo "AdobeRemoved:$AdobeRemoved"